applications of graph theory in real life